package utils

import (
	"sync"

	"github.com/go-playground/validator/v10"
)

type validatorUtils struct {
	Validate *validator.Validate
}

var (
	validatorUtilsTemp *validatorUtils
	validatorUtilsOnce sync.Once
)

func NewValidatorUtils() *validatorUtils {
	validatorUtilsOnce.Do(func() {
		v := validator.New()
		validatorUtilsTemp = &validatorUtils{
			Validate: v,
		}
		// register(validatorUtilsTemp)
	})
	return validatorUtilsTemp
}

// func (m *validatorUtils) FormatErr(data ) error {
// 	if errs := m.Validate(data); len(errs) > 0 && errs[0].Error {
// 		errMsgs := make([]string, 0)
// 		for _, err := range errs {
// 			errMsgs = append(errMsgs, fmt.Sprintf(
// 				"[%s]: '%v' | Needs to implement '%s'",
// 				err.FailedField,
// 				err.Value,
// 				err.Tag,
// 			))
// 		}

// 	}
// }

// 注册自定义校验
// func register(v *validatorUtils) {
// 	v.Validate.RegisterValidation("teener", func(fl validator.FieldLevel) bool {
// 		// User.Age needs to fit our needs, 12-18 years old.
// 		return fl.Field().Int() >= 12 && fl.Field().Int() <= 18
// 	})
// }
